using System;
using ns27;
using Triton.Game.Mono;

namespace Triton.Game.Mapping
{
	[Attribute38("ReconnectMgr")]
	public class ReconnectMgr : MonoBehaviour
	{
		[Attribute38("ReconnectMgr.SavedStartGameParameters")]
		public class SavedStartGameParameters : MonoClass
		{
			public GameType GameType => method_2<GameType>("GameType");

			public ReconnectType ReconnectType => method_2<ReconnectType>("ReconnectType");

			public SavedStartGameParameters(IntPtr address, string className)
				: base(address, className)
			{
			}

			public SavedStartGameParameters(IntPtr address)
				: this(address, "SavedStartGameParameters")
			{
			}
		}

		public AlertPopup m_dialog => method_3<AlertPopup>("m_dialog");

		public ReconnectType m_reconnectType => method_2<ReconnectType>("m_reconnectType");

		public float m_reconnectStartTimestamp => method_2<float>("m_reconnectStartTimestamp");

		public float m_retryStartTimestamp => method_2<float>("m_retryStartTimestamp");

		public SavedStartGameParameters m_savedStartGameParams => method_3<SavedStartGameParameters>("m_savedStartGameParams");

		public ReconnectMgr(IntPtr address, string className)
			: base(address, className)
		{
		}

		public ReconnectMgr(IntPtr address)
			: this(address, "ReconnectMgr")
		{
		}

		public static ReconnectMgr Get()
		{
			return MonoClass.smethod_15<ReconnectMgr>(TritonHs.MainAssemblyPath, "", "ReconnectMgr", "Get", Array.Empty<object>());
		}

		public void Awake()
		{
			method_8("Awake");
		}

		public void Start()
		{
			method_8("Start");
		}

		public void OnDestroy()
		{
			method_8("OnDestroy");
		}

		public void Update()
		{
			method_8("Update");
		}

		public bool IsReconnectEnabled()
		{
			return method_11<bool>("IsReconnectEnabled", Array.Empty<object>());
		}

		public bool IsReconnecting()
		{
			return method_11<bool>("IsReconnecting", Array.Empty<object>());
		}

		public bool IsStartingReconnectGame()
		{
			return method_11<bool>("IsStartingReconnectGame", Array.Empty<object>());
		}

		public float GetTimeout()
		{
			return method_11<float>("GetTimeout", Array.Empty<object>());
		}

		public float GetRetryTime()
		{
			return method_11<float>("GetRetryTime", Array.Empty<object>());
		}

		public void HandleDisconnectedGameResult()
		{
			method_8("HandleDisconnectedGameResult");
		}

		public bool ReconnectFromLogin()
		{
			return method_11<bool>("ReconnectFromLogin", Array.Empty<object>());
		}

		public bool ReconnectFromGameplay()
		{
			return method_11<bool>("ReconnectFromGameplay", Array.Empty<object>());
		}

		public bool ShowDisconnectedGameResult(NetCache.ProfileNoticeDisconnectedGame dcGame)
		{
			return method_11<bool>("ShowDisconnectedGameResult", new object[1] { dcGame });
		}

		public string GetGameTypeName(GameType gameType, int missionId)
		{
			return method_13("GetGameTypeName", gameType, missionId);
		}

		public void WillReset()
		{
			method_8("WillReset");
		}

		public void StartReconnecting(ReconnectType reconnectType)
		{
			method_8("StartReconnecting", reconnectType);
		}

		public void CheckReconnectTimeout()
		{
			method_8("CheckReconnectTimeout");
		}

		public void CheckReconnectRetry()
		{
			method_8("CheckReconnectRetry");
		}

		public void OnReconnectTimeout()
		{
			method_8("OnReconnectTimeout");
		}

		public void OnGameResult(NetCache.ProfileNoticeDisconnectedGame dcGameNotice)
		{
			method_8("OnGameResult", dcGameNotice);
		}

		public void ClearReconnectData()
		{
			method_8("ClearReconnectData");
		}

		public void ShowReconnectingDialog()
		{
			method_8("ShowReconnectingDialog");
		}

		public bool OnReconnectingDialogProcessed(DialogBase dialog, object userData)
		{
			return method_11<bool>("OnReconnectingDialogProcessed", new object[2] { dialog, userData });
		}

		public void OnReconnectingDialogResponse(AlertPopup.Response response, object userData)
		{
			method_8("OnReconnectingDialogResponse", response, userData);
		}

		public void ChangeDialogToReconnected()
		{
			method_8("ChangeDialogToReconnected");
		}

		public void OnPreviousSceneDestroyed(object userData)
		{
			method_8("OnPreviousSceneDestroyed", userData);
		}

		public void ChangeDialogToTimeout()
		{
			method_8("ChangeDialogToTimeout");
		}

		public void OnTimeoutDialogResponse(AlertPopup.Response response, object userData)
		{
			method_8("OnTimeoutDialogResponse", response, userData);
		}

		public void HideDialog()
		{
			method_8("HideDialog");
		}

		public NetCache.ProfileNoticeDisconnectedGame GetDCGameNotice()
		{
			return method_14<NetCache.ProfileNoticeDisconnectedGame>("GetDCGameNotice", Array.Empty<object>());
		}

		public void AckNotice(NetCache.ProfileNoticeDisconnectedGame notice)
		{
			method_8("AckNotice", notice);
		}

		public void StartGame_Internal()
		{
			method_8("StartGame_Internal");
		}

		public bool OnFindGameEvent(FindGameEventData eventData, object userData)
		{
			return method_11<bool>("OnFindGameEvent", new object[2] { eventData, userData });
		}

		public void FireTimeoutEvent()
		{
			method_8("FireTimeoutEvent");
		}

		public void OnFatalError(FatalErrorMessage message, object userData)
		{
			method_8("OnFatalError", message, userData);
		}
	}
}
